package com.asset.dispoal.menu.api;

import com.asset.dispoal.menu.dto.requset.GbMenuRequest;
import com.asset.dispoal.menu.dto.response.GbMenuResponse;
import com.asset.dispoal.role.dto.GbRoleRequest;
import tech.mhuang.pacebox.springboot.protocol.Result;

import java.util.List;

/**
 * 菜单表服务接口
 *
 * @author: mhuang
 * @date: 2022-02-25 15:34:43
 */
public interface GbMenuService {

    /**
     * 添加
     *
     * @param request
     */
    void insert(GbMenuRequest request);

    /**
     * 删除
     *
     * @param request
     */
    void delete(String id);

    /**
     * 修改
     *
     * @param request
     */
    void update(GbMenuRequest request);

    /**
     * 查询
     *
     * @param request
     * @return
     */
    Result<List<GbMenuResponse>> queryTreeAll(GbMenuRequest request);


    /**
     * 选中菜单
     *
     * @param ids
     * @return
     */
    Result selectMenu(List<String> ids);

    /**
     * 设置公司菜单
     *
     * @param companyId
     * @return
     */
    Result<List<GbMenuResponse>> companyMenu(String companyId);


    Result<List<GbMenuResponse>> companyMenuById(String companyId);

    Result<List<GbMenuResponse>> defaultRoleMenu(String role, String companyType);


    Result<List<GbMenuResponse>> roleMenu(GbRoleRequest role);

}